class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        
        //双指针法
        ListNode* slow=head;
        ListNode* fast=head;
        //慢指针走一步，快指针走两步
        while(fast&&fast->next)     //注意考虑链表长度是奇数和偶数的情况
        {
            slow=slow->next;
            fast=fast->next->next;
        }
        return slow;        //慢指针，就是中点
    }
};